/*
* @Author: admin
* @Date:   2018-07-17 15:18:44
* @Last Modified by:   admin
* @Last Modified time: 2018-07-19 11:08:54
*/
// var MongoClient = require('mongodb').MongoClient;
// var url = 'mongodb://localhost:27017';
// function _connect(callback){
// 	MongoClient.connect(url, function (err, db) {
// 	    if (err) throw err;
// 	    callback(err,db)
//         db.close();
// 	});
// }

// exports.insert = function(dbase,collectionName,myobj,callback){
// 	_connect(function(a,db){
// 		// if(myobj.startsWith('{')){
// 		// 	myobj = '['+myobj+']';
// 		// }
// 		db.db(dbase).collection(collectionName).insertMany(myobj,function(err,result){
// 			if(err) throw err;
// 			console.log("文档插入成功");
// 			callback(err,result)
// 			db.close();
// 		})
// 	})
// }
var MongoClient = require('mongodb').MongoClient;
var url = "mongodb://localhost:27017/";
function _connect(callback){
	MongoClient.connect(url, function(err, db) {
	  if (err) throw err;
	  callback(err,db);
	  db.close();
	});
}

exports.insert=function(dbase,collectionName,myobj,callback){
	_connect(function(a,db){
		if(!Array.isArray(myobj)){
			db.db(dbase).collection(collectionName).insertOne(myobj, function(err, result) {
		        if (err) throw err;
		        console.log("单条数据插入成功");
		        callback(err, result);
		        db.close();
		    });
		}else{
			db.db(dbase).collection(collectionName).insertMany(myobj, function(err, result) {
		        if (err) throw err;
		        console.log("批量数据插入成功");
		        callback(err, result);
		        db.close();
		    });
		}
		
	})
}
exports.delete=function(dbase,collectionName,myobj,callback){
	_connect(function(a,db){
		console.log('传过来要删除的数据:'+JSON.stringify(myobj));
		db.db(dbase).collection(collectionName).deleteMany(myobj,function(err,result){
			if(err) throw err;
			console.log("删除数据成功!");
			callback(err,result);
			db.close();
		})
	})
}
exports.update=function(dbase,collectionName,oldObj,newObj,multiBoolean,callback){
	_connect(function(a,db){
		db.db(dbase).collection(collectionName).update(oldObj,{$set:newObj},{multi:multiBoolean},function(err,result){
			if(err) throw err;
			console.log("更新数据成功!");
			callback(err,result);
			db.close();
		})
	})
}
exports.find=function(dbase,collectionName,sortdata,pageSize,num,callback){
	_connect(function(a,db){
		db.db(dbase).collection(collectionName).find().limit(pageSize).skip(pageSize*(pageSize-num)).sort(sortdata).toArray((err,result)=>{
			console.log(result);
			if(err) throw err ;
			console.log("查找数据成功！")
			callback(err, result);
			db.close();
		})
	})
}
